﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ContratanteService.Dominio;
using System.Data.SqlClient;

namespace ContratanteService.Persistencia
{
    public class ContratanteDAO : BaseDAO<Contratante, int>
    {
        public List<Contratante> ListarTodosAdmin(int tipo)
        {
            List<Contratante> contratantesEncontrados = new List<Contratante>();
            Contratante contratanteEncontrado = null;
            string sql = "SELECT * FROM Contratante";
            switch (tipo)
            {
                case 0:
                    //Pendientes de aprobación
                    sql = sql + " WHERE stdRegistro = 0";
                    break;
                case 2:
                    //Ofertantes reportados
                    sql = sql + " WHERE stdRegistro = 2";
                    break;
                case 1:
                    //Ofertantes aprobados y reportados
                    sql = sql + " WHERE stdRegistro in (1,2)";
                    break;
            }
            using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    using (SqlDataReader resultado = com.ExecuteReader())
                    {
                        while (resultado.Read())
                        {
                            contratanteEncontrado = new Contratante()
                            {
                                Codigo = (int)resultado["idOfertante"],
                                DocIdentidad = "RUC",
                                Razon_Social = (string)resultado["rznSocOfertante"],
                                NumDocumento = (string)resultado["numDocOfertante"],
                                Direccion = (string)resultado["dirOfertante"],
                                Telefono = (string)resultado["numTelOfertante"],
                                EMail = (string)resultado["eMailOfertante"],
                                Estado = (int)resultado["stdRegistro"]
                            };
                            contratantesEncontrados.Add(contratanteEncontrado);
                        }
                    }
                }
            }
            return contratantesEncontrados;
        }
    }
}